import axios from './http'
import QS from 'qs'

export default {
    // get方法 ?分割地址和参数方式传参
    get: (url,params = {},timeout = null) => {
        return new Promise((resolve,reject) => {
            axios({
                method: 'get',
                url: url + '?' + QS.stringify(params),
                timeout: timeout
            })
            .then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err.data)
            })
        })
    },
    // get方法 参数放在地址中方式传参
    getParamsIn: (url,params = []) => {
        return new Promise((resolve,reject) => {
            let paramsStr = ''
            params.forEach(value => {
                paramsStr += '/' + value
            })
            axios.get(url + paramsStr)
            .then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err.data)
            })
        })
    },
    // post方法
    post: (url,data = {}) => {
        return new Promise((resolve,reject) => {
            axios.post(url,data)
            .then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err.data)
            })
        })
    },
    // delete方法
    delete: (url,params = {}) => {
        return new Promise((resolve,reject) => {
            axios.delete(url + '?' + QS.stringify(params))
            .then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err.data)
            })
        })
    },
    // delete方法 参数放在地址中方式传参
    deleteParamsIn: (url,params = []) => {
        return new Promise((resolve,reject) => {
            let paramsStr = ''
            params.forEach(value => {
                paramsStr += '/' + value
            })
            axios.delete(url + paramsStr)
            .then(res => {
                resolve(res.data)
            }).catch(err => {
                reject(err.data)
            })
        })
    },
    axios: axios, // 将axios继续暴露
}